//==========================================
//     TPVLink: Facturas con deglose de IVAs
//==========================================

SELECT CABEFACV.CONTABLE, CABEFACV.IDFACV,
       CABEFACV.TIPOCONT, CABEFACV.SERIE, CABEFACV.NUMDOC, CABEFACV.FECHA, 
       LCC.CIERRE, 
       REGIVA.NOMRIVA "Tipo de Operación",
       CABEFACV.CODCLI, CABEFACV.NOMCLI, CABEFACV.NIFCLI,
       ((CASE when CABEFACV.PORIVA1='21' then BASEIVAMON1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='21' then BASEIVAMON2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='21' then BASEIVAMON3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='21' then BASEIVAMON4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='21' then BASEIVAMON5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='21' then BASEIVAMON6 else 0 end)) as BASE21,
       ((CASE when CABEFACV.PORREC1='5.2' then TOTREC1 else 0 end) +
        (CASE when CABEFACV.PORREC2='5.2' then TOTREC2 else 0 end) +
        (CASE when CABEFACV.PORREC3='5.2' then TOTREC3 else 0 end) +
        (CASE when CABEFACV.PORREC4='5.2' then TOTREC4 else 0 end) +
        (CASE when CABEFACV.PORREC5='5.2' then TOTREC5 else 0 end) +
        (CASE when CABEFACV.PORREC6='5.2' then TOTREC6 else 0 end)) RE52,
	   ((CASE when CABEFACV.PORIVA1='21' then TOTIVA1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='21' then TOTIVA2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='21' then TOTIVA3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='21' then TOTIVA4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='21' then TOTIVA5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='21' then TOTIVA6 else 0 end)) as IVA21,
       ((CASE when CABEFACV.PORIVA1='10' then BASEIVAMON1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='10' then BASEIVAMON2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='10' then BASEIVAMON3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='10' then BASEIVAMON4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='10' then BASEIVAMON5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='10' then BASEIVAMON4 else 0 end)) as BASE10,
       ((CASE when CABEFACV.PORREC1='1.4' then TOTREC1 else 0 end) +
        (CASE when CABEFACV.PORREC2='1.4' then TOTREC2 else 0 end) +
        (CASE when CABEFACV.PORREC3='1.4' then TOTREC3 else 0 end) +
        (CASE when CABEFACV.PORREC4='1.4' then TOTREC4 else 0 end) +
        (CASE when CABEFACV.PORREC5='1.4' then TOTREC5 else 0 end) +
        (CASE when CABEFACV.PORREC6='1.5' then TOTREC6 else 0 end)) RE14,
       ((CASE when CABEFACV.PORIVA1='10' then TOTIVA1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='10' then TOTIVA2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='10' then TOTIVA3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='10' then TOTIVA4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='10' then TOTIVA5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='10' then TOTIVA6 else 0 end)) as IVA10,
       ((CASE when CABEFACV.PORIVA1='5' then BASEIVAMON1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='5' then BASEIVAMON2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='5' then BASEIVAMON3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='5' then BASEIVAMON4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='5' then BASEIVAMON5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='5' then BASEIVAMON6 else 0 end)) as BASE05,
       ((CASE when CABEFACV.PORREC1='0.62' then TOTREC1 else 0 end) +
        (CASE when CABEFACV.PORREC2='0.62' then TOTREC2 else 0 end) +
        (CASE when CABEFACV.PORREC3='0.62' then TOTREC3 else 0 end) +
        (CASE when CABEFACV.PORREC4='0.62' then TOTREC4 else 0 end) +
        (CASE when CABEFACV.PORREC5='0.62' then TOTREC5 else 0 end) +
        (CASE when CABEFACV.PORREC6='0.62' then TOTREC6 else 0 end)) RE062,
	   ((CASE when CABEFACV.PORIVA1='5' then TOTIVA1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='5' then TOTIVA2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='5' then TOTIVA3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='5' then TOTIVA4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='5' then TOTIVA5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='5' then TOTIVA6 else 0 end)) as IVA05,
       ((CASE when CABEFACV.PORIVA1='4' then BASEIVAMON1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='4' then BASEIVAMON2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='4' then BASEIVAMON3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='4' then BASEIVAMON4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='4' then BASEIVAMON5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='4' then BASEIVAMON6 else 0 end)) as BASE04,
       ((CASE when CABEFACV.PORREC1='0.5' then TOTREC1 else 0 end) +
        (CASE when CABEFACV.PORREC2='0.5' then TOTREC2 else 0 end) +
        (CASE when CABEFACV.PORREC3='0.5' then TOTREC3 else 0 end) +
        (CASE when CABEFACV.PORREC4='0.5' then TOTREC4 else 0 end) +
        (CASE when CABEFACV.PORREC5='0.5' then TOTREC5 else 0 end) +
        (CASE when CABEFACV.PORREC6='0.5' then TOTREC6 else 0 end)) RE05,
       ((CASE when CABEFACV.PORIVA1='4' then TOTIVA1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='4' then TOTIVA2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='4' then TOTIVA3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='4' then TOTIVA4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='4' then TOTIVA5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='4' then TOTIVA6 else 0 end)) as IVA04,		
        ((CASE when CABEFACV.PORIVA1='2' then BASEIVAMON1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='2' then BASEIVAMON2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='2' then BASEIVAMON3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='2' then BASEIVAMON4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='2' then BASEIVAMON5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='2' then BASEIVAMON6 else 0 end)) BASE2,
       ((CASE when CABEFACV.PORIVA1='2' then TOTIVA1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='2' then TOTIVA2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='2' then TOTIVA3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='2' then TOTIVA4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='2' then TOTIVA5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='2' then TOTIVA6 else 0 end)) IVA2,
       ((CASE when CABEFACV.PORREC1='0.26' then TOTREC1 else 0 end) +
        (CASE when CABEFACV.PORREC2='0.26' then TOTREC2 else 0 end) +
        (CASE when CABEFACV.PORREC3='0.26' then TOTREC3 else 0 end) +
        (CASE when CABEFACV.PORREC4='0.26' then TOTREC4 else 0 end) +
        (CASE when CABEFACV.PORREC5='0.26' then TOTREC5 else 0 end) +
        (CASE when CABEFACV.PORREC6='0.26' then TOTREC6 else 0 end)) RE026,
       ((CASE when CABEFACV.PORIVA1='7.5' then BASEIVAMON1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='7.5' then BASEIVAMON2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='7.5' then BASEIVAMON3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='7.5' then BASEIVAMON4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='7.5' then BASEIVAMON5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='7.5' then BASEIVAMON6 else 0 end)) BASE75,
       ((CASE when CABEFACV.PORIVA1='7.5' then TOTIVA1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='7.5' then TOTIVA2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='7.5' then TOTIVA3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='7.5' then TOTIVA4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='7.5' then TOTIVA5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='7.5' then TOTIVA6 else 0 end)) IVA75,
       ((CASE when CABEFACV.PORREC1='1' then TOTREC1 else 0 end) +
        (CASE when CABEFACV.PORREC2='1' then TOTREC2 else 0 end) +
        (CASE when CABEFACV.PORREC3='1' then TOTREC3 else 0 end) +
        (CASE when CABEFACV.PORREC4='1' then TOTREC4 else 0 end) +
        (CASE when CABEFACV.PORREC5='1' then TOTREC5 else 0 end) +
        (CASE when CABEFACV.PORREC6='1' then TOTREC6 else 0 end)) RE1,
       ((CASE when CABEFACV.PORIVA1='0' then BASEIVAMON1 else 0 end) +
        (CASE when CABEFACV.PORIVA2='0' then BASEIVAMON2 else 0 end) +
        (CASE when CABEFACV.PORIVA3='0' then BASEIVAMON3 else 0 end) +
        (CASE when CABEFACV.PORIVA4='0' then BASEIVAMON4 else 0 end) +
        (CASE when CABEFACV.PORIVA5='0' then BASEIVAMON5 else 0 end) +
        (CASE when CABEFACV.PORIVA6='0' then BASEIVAMON6 else 0 end)) as EXENTO,
       CABEFACV.porirpf, CABEFACV.totirpf,
       CABEFACV.SUPLIDOSMON,
       CABEFACV.TOTMONEDA TOTAL
  FROM CABEFACV  WITH (NOLOCK)
  LEFT JOIN LINK_MOVIMIENTOS_CAJA LMC ON LMC.IDFACV = CABEFACV.IDFACV
  LEFT JOIN LINK_CIERRES_CAJA LCC ON LCC.ID = LMC.CIERRE
  LEFT JOIN REGIVA WITH (NOLOCK) ON CABEFACV.REGIVA = REGIVA.REGIVA
  WHERE ( [DevolverRegistros, SysName, 1 = 1])
    AND ( [CondicionTabla, SysName, 1 = 1])
    AND ( [Filtro, SysName, 1 = 1])
    AND ( [CondicionIdentificadores, SysName, 1 = 1])
    AND ( [CondicionCodigo, SysName, 1 = 1])
    AND ( [CondicionRepresentante, Sysname, 1 = 1])
    AND ( [CondicionFechasDocumento, SysName, 1 = 1])
    AND ( [CondicionNumeroDocumento, Sysname, 1 = 1])
    AND ( [CondicionReferenciaDocumento, Sysname, 1 = 1])
    AND ( ( '[TextoBusqueda, SysName, '']' = '') OR
          ( CABEFACV.CONTABLE LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.IDFACV LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.TIPOCONT LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.SERIE LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.NUMDOC LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.FECHA LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.REFERENCIA LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.CODCLI LIKE '%[TextoBusqueda, SysName, '']%') OR
          ( CABEFACV.NOMCLI LIKE '%[TextoBusqueda, SysName, '']%'))